﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using EzDesk.Project.Model;
using EzDesk.EzAppApi.Utility;
using EzDesk.Project.Service.Tests.Mock;

namespace EzDesk.Project.Service.Tests
{
    //[TestClass]
    //public class ProjectService_Tests : ProjectTestBase
    //{
    //    public ProjectService_Tests()
    //    { }

    //    #region [ 项目基本处理 ]
    //    [TestMethod]
    //    public void Test_获得项目基本信息()
    //    {
    //        var service = GetProjectService();
    //        var project = service.GetBasicInfo(existedTestProjectId);

    //        Assert.AreEqual(project.ProjectNo, "MIC-5");
    //    }

    //    [TestMethod]
    //    public void Test_添加新的项目_基本信息()
    //    {
    //        var service = GetProjectService();
    //        var existedProject = service.GetBasicInfo(existedTestProjectId);
    //        BasicInfo newProject = new BasicInfo()
    //        {
    //            Id = testProjectId1,
    //            ProjectNo = "MIC-6", //项目编号
    //            ProjectName = "Test",
    //            CreateOn = DateTime.Now,
    //            ProjectType = ProjectTypeEnum.景观, //
    //            ProjectTeamId = Guid.Empty,
    //            Remark = "项目备注",
    //        };

    //        service.CreateProject(newProject, SampleUsers["杨裕欣"]);

    //        var result = service.GetBasicInfo(testProjectId1);
    //        Assert.AreEqual(result.ProjectNo, "MIC-6");
    //    }

    //    [TestMethod]
    //    public void Test_添加新的项目_错误处理()
    //    {
    //        var service = GetProjectService();
    //        var existedProject = service.GetBasicInfo(existedTestProjectId);
    //        BasicInfo newProject = new BasicInfo()
    //        {
    //            Id = testProjectId1,
    //            ProjectNo = "MIC-6", //项目编号
    //            ProjectType = ProjectTypeEnum.景观, //
    //            ProjectTeamId = Guid.Empty,
    //            Remark = "项目备注",
    //        };

    //        bool hasError = false;

    //        // ID不能重复
    //        newProject.Id = existedTestProjectId;
    //        try
    //        {
    //            service.CreateProject(newProject, SampleUsers["杨裕欣"]);
    //        }
    //        catch (Exception)
    //        {
    //            hasError = true;
    //        }
    //        if (!hasError)
    //        {
    //            Assert.Fail("ID重复");
    //        }
    //        hasError = true;
    //        // No不能重复
    //        newProject.ProjectNo = existedProject.ProjectNo;
    //        try
    //        {
    //            service.CreateProject(newProject, SampleUsers["杨裕欣"]);
    //        }
    //        catch (Exception)
    //        {
    //            hasError = true;
    //        }
    //        if (!hasError)
    //        {
    //            Assert.Fail("No重复");
    //        }
    //        hasError = true;
    //        // Name不能重复
    //        newProject.ProjectName = existedProject.ProjectNo;
    //        try
    //        {
    //            service.CreateProject(newProject, SampleUsers["杨裕欣"]);
    //        }
    //        catch (Exception)
    //        {
    //            hasError = true;
    //        }
    //        if (!hasError)
    //        {
    //            Assert.Fail("Name重复");
    //        }
    //    }

    //    #endregion


    //    #region [ 项目组人员管理 ]

    //    [TestMethod]
    //    public void Test_获得一个项目的已有团队()
    //    {
    //        var service = GetProjectService();
    //        var project = service.GetBasicInfo(existedTestProjectId);

    //        ProjectTeam theTeam = service.GetProjectTeam(project);
    //        Assert.AreEqual(theTeam, null);
    //    }

    //    [TestMethod]
    //    public void Test_为项目创建一个项目团队()
    //    {
    //        var service = GetProjectService();
    //        var project = service.GetBasicInfo(existedTestProjectId);

    //        Guid newTeamId = Guid.NewGuid();
    //        ProjectTeam team = new ProjectTeam()
    //        {
    //            Id = newTeamId,
    //            ProjectId = existedTestProjectId,
    //            Manager = apiClient.GetSimpleUserById(SampleUsers["杨裕欣"]),
    //            Members = apiClient.GetSimpleUserInfos("everyone"),
    //        };

    //        service.CreateProjectTeam(project, team);

    //        ProjectTeam newTeam = service.GetProjectTeam(project);
    //        Assert.AreEqual(newTeam.Manager.Name, "杨裕欣");

    //    }
    //    #endregion

    //    #region [ 项目任务处理 ]
    //    // 添加项目任务
    //    #endregion

    //    #region [ 员工工作项处理 ]
    //    // 项目经理为项目成员分配一项工作
    //    // 员工自己提交一项工作
    //    // 员工将自己已有的一个工作项标记为完成，并填写工时
    //    #endregion


    //}
}
